<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div{
            width: 100px;
            height: 100px;
            background-color: #f00;
            position: absolute;
        }
    </style>
</head>
<body>

    <div></div>

    <script>

        // 拖拽：鼠标按下，然后移动鼠标的过程


        // 鼠标按下的时候，就要获取鼠标在盒子里面的位置



        var oDiv = document.querySelector('div') ;

        oDiv.addEventListener('mousedown' , function(e) {
            // 在鼠标按下的时候，获取鼠标在盒子里面的位置
            // var gapX = e.x - oDiv.offsetLeft ;
            // var gapY = e.y - oDiv.offsetTop ;

            // offsetX 鼠标距离事件源的距离
            var gapX = e.offsetX ;
            var gapY = e.offsetY ;

            document.onmousemove = function(e) {
                var x = e.x - gapX ;
                var y = e.y - gapY ;

                oDiv.style.cssText = `left:${x}px;top:${y}px;`
            }

        })

        oDiv.addEventListener('mouseup' , function() {
            document.onmousemove = null ;
        })

    </script>
    

</body>
</html>